Tutorial: Embed Web Determinations within my portal - a simple implementation

Tutorial: Embed Web Determinations within my portal - a simple implementation

Oracle Policy Automation now provides an Interview Portlet that allows you to embed a Web Determinations interview in a portal. For more information, see Customize the Interview Portlet.

If you do not wish to use the out-of-the-box portlet, you can use this tutorial to teach you how to produce a very simple Interview Portlet, designed to provide the end user with a basic set of screens that will allow the completion of a simple Goal Investigation.

Some more complex features such as access control, inter-portlet communication and more advanced Oracle Policy Automation functionality may be touched on, but for the purposes of this tutorial they will not be gone into in any detail. It is assumed that readers of this tutorial are already familiar with their chosen portal and the intricacies of its Portlet API.

In summary, this tutorial should produce a portlet that utilizes the Interview Service to provide the user with the following:

 

To complete this tutorial, you will need the following:

 

Throughout this tutorial the aim is to keep things as simple as possible, providing a basic overview of the way the parts of the portlet being created will hang together without going into excessive detail; for example, in the Render the Summary screen section below, we look at a simple Web Service call using proxy classes to retrieve a new Session Token. Unfortunately no web service call is ever guaranteed to succeed and there are numerous errors that may occur when attempting to call the openSession() method.

Between networking errors, web server issues and problems with the requests themselves being malformed or invalid, there are numerous problems that a portlet would be expected to contend with. For brevity, this tutorial will not perform any error handling, but note that for every web service call made there should always be some attempt to at least check that the call was successful (isSuccessful()), and potentially parse the errorList. No return is ever guaranteed.